From: Xiang W Date: Mon, 4 Dec 2023 20:48:19 +0000 (+0800) Subject: luci-lib-nixio: Fix add_luci_conffiles adding duplicate files (#6568) X-Git-Url: http://git.openwrt.org/%22https:/collectd.org//%22/%22https:/collectd.org/%22?a=commitdiff_plain;h=c2f679962ddf7f6545adacfcf3068370825c43a9;p=project%2Fluci.git luci-lib-nixio: Fix add_luci_conffiles adding duplicate files (#6568) * luci-lib-nixio: Fix add_luci_conffiles adding duplicate files add_luci_conffiles does not check whether the file already exists when adding the file, which may result in redundant backups in the sysupgrade backup. Signed-off-by: Xiang W --- diff --git a/libs/luci-lib-nixio/root/lib/upgrade/luci-add-conffiles.sh b/libs/luci-lib-nixio/root/lib/upgrade/luci-add-conffiles.sh index 77399b9872..d5117f9d89 100644 --- a/libs/luci-lib-nixio/root/lib/upgrade/luci-add-conffiles.sh +++ b/libs/luci-lib-nixio/root/lib/upgrade/luci-add-conffiles.sh @@ -1,15 +1,26 @@ add_luci_conffiles() { + add_luci_conffiles_helper() + { + [ ! -f "$1" ] && return + grep -q "$1" "$2" && return + echo "$1" >> "$2" + } + local filelist="$1" # save ssl certs if [ -d /etc/nixio ]; then - find /etc/nixio -type f >> $filelist + find /etc/nixio -type f | while read ff; do + add_luci_conffiles_helper "$ff" "$filelist" + done fi # save uhttpd certs - [ -f "/etc/uhttpd.key" ] && echo /etc/uhttpd.key >> $filelist - [ -f "/etc/uhttpd.crt" ] && echo /etc/uhttpd.crt >> $filelist + add_luci_conffiles_helper /etc/uhttpd.key "$filelist" + add_luci_conffiles_helper /etc/uhttpd.crt "$filelist" + + unset -f add_luci_conffiles_helper } sysupgrade_init_conffiles="$sysupgrade_init_conffiles add_luci_conffiles"